﻿//using System;
//
//using Outcoder;
//
//using Xamarin.Forms;
//
//namespace CalciumTemplateApp
//{
//	public interface IViewFactory
//	{
//		TView CreateView<TView>(Action<TView> onCreationAction = null);
//	}
//
//	public class ViewFactory : IViewFactory
//	{
//		public TView CreateView<TView>(Action<TView> onCreationAction = null)
//			//where TPage : Page
//		{
//			var view = Dependency.Resolve<TView>();
//			var visualElement = view as VisualElement;
//			if (visualElement != null)
//			{
//				var vm = visualElement.BindingContext as ViewModel;
//				if (vm != null && visualElement.Navigation != null)
//				{
//					vm.Navigation = visualElement.Navigation;
//				}
//			}
//
//			if (onCreationAction != null)
//			{
//				onCreationAction(view);
//			}
//			
//			return view;
//		}
//    }
//
//	//public interface IRequire
//}
